ל' ' פונקציות פרימיטיביות רקורסיביות חישוביות הרצאה 4 האם כל פונקציה מלאה היא פרימיטיבית רקורסיבית? לא נראה שתי הוכחות: פונקציות רקורסיביות (המשך) זיהוי שפות ע''י מכונות טיורינג הוכחה קיומית: קיימות פונקציות שלמות שאינן פרימיטיביות רקורסיביות הוכחה מעשית: נראה דוגמה של פונקציה שלמה שאינה פרימיטיבית רקורסיבית המשך הוכחת טענה הוכחה קיומית טענה : קבוצת כל הפונקציות המלאות אינה בת מנייה הוכחה: נשתמש בשיטת הלכסון נתייחס רק לפונקציות ממספרים טבעיים למספרים טבעיים נניח בשלילה כי קיים מספור כל הפונקציות כנ נסמן ע''י f i את הפונקציה שקיבלה מספר i במספור נבנה לשם סתירה פונקציה f r אשר לא קיבלה מספר הגדרת + (i) f r (i) = f i לכל i 0 שלם : f r אבחנה: לא יתכן כי f r קיבלה מספר j כלשהו כי אחרת מצד אחד (j) f r (j) = f j ומצד שני + (j) f r (j) = f j מסקנה: קיבלנו סתירה לכן קבוצת הפונקציות המלאות אינה בת מנייה 4
הוכחה קיומית סיכום הוכחה קיומית (המשך) טענה : קבוצת הפונקציות הרקורסיביות הפרימיטיביות הינה בת מנייה רעיון ההוכחה: ניתן להגדיר סדר בין פונק ציות רקורסי ביות פרי מי ט יביות במספר ה פעל ות של שנ י ה כללים לקבל ת הפונקצי ה ובסדר הפעלתם ניתן למנות פונקציות פרימיטיביות רקורסיביות לא ניתן למנות את כלל הפונקציות המלאות מסקנה: יש "הרבה יותר" פונקציות מלאות מאשר פונקציות פרימיטיביות רקורסיביות, כלומר, רוב הפונקציות המלאות אינן פרימיטיביות רקורסיביות 6 5 פונקצית אקרמן הוכחה מעשית נביא דוגמה של פונקציה מלאה שאינה פרימיטיבית רקורסיבית פונקצית אקרמן: A(0, ) = + A(0) = A(x,) A() = A(x, A( )) 0 x > 0 > 0 אקרמן הוכיח כי הפונקציה אינה פרימיטיבית רקורסיבית דוגמת חישוב של פונקצית אקרמן: A(,) = A(, A(,0)) = A(, A(, ) ) = A(, A(0, A(,0))) = A(, A(,0) + ) = A(, A(0,) + ) = A(, +) = A(,) = A(0, A(,)) = A(,) + = A(0, A(,) ) + = A(,) + + = A(,) + = A(0, A(,0)) + = A(,0) + + = A(,0) + = A(0,) + = + = 5 8 7
כלל המינימיזציה סיכום הדיון נראה בהמשך כי פונקציות פרימיטיביות רקורסיביות ניתנות לחישוב ע''י מ ) וגם ע''י מחשב באופן כללי) האם יתכן שפונקציות פרימיטיביות רקורסיביות מכסות את כל הפונקציות הניתנות לחישוב? פונקציות פרימיטיביות רקורסיביות כולן פונקציות מלאות לכן זה לא מכסה פונקציות חלקיות ישנן פונקציות מלאות (לדוגמה, פונקציות אקרמן) אשר ניתנות לחישוב במחשב אך לא רקורסיביות פרימיטיביות מסקנה: ישנן פונקציות נוספות הניתנות לחישוב מלבד פונקציות פרימיטיביות רקורסיביות נגדיר כלל נוסף (שלישי) לקבלת פונקציות חדשות בהינתן פונקציה ) n f(,x,,x הפונקציה המתקבלת ע''י כלל המינימיזציה היא:, K, x ) = min{ f x, x, K, x וגם = 0 ), K, x {מוגדר ) אם לא קיים כזה, ) n h(x,x,,x אינה מוגדרת h( x, x n < n f (, x, x n 0 9 פונקציות רקורסיביות כלל המינימיזציה הסברים f הערך שמקבלת הפונקציה h הוא " הערך המינימלי המאפס את הפונקציה f " בנוסף צריך לקיים שלכל ערך ` קטן יותר הפונקציה מוגדרת אם אין כזה, h לא מוגדרת אבחנה: h יכולה להיות פונקציה חלקית # # הגד רה: פונקציה שניתנת לביטוי בעזרת פונקציות היסוד תוך שימוש מספר סופי של פעמים בכללי ההרכבה, הרקורסיה הפרימיטיבית והמינימיזציה נקראת פונקציה רקורסיבית "אבחנה: פונקציות רקורסיביות כוללות גם פונקציות פרימיטיביות רקורסיביות
פונקציות רקורסיביות דוגמה פתרון דוגמה half ( נגדיר את פונקצית החצי באופן הבא: = זוגי / x אחרת אינו מוגדר x אבחנה: הפונקציה הינה חלקית לכן נצטרך להשתמש בכלל המינימיזציה איזו פונקציה של ו- x מתאפסת כאשר הוא חצי של x ולא מתאפסת כלל כאשר x אי זוגי? נוכיח: פונקצית החצי היא פונקציה רקורסיבית f = x 4 הפתרון דוגמה פונקציות רקורסיביות דוגמה מימוש של f כפונקציה רקורסיבית: נגדיר את פונקצית השורש: f = abs _ diff ( add( P, P ), P ) מימוש של half כפונקציה רקורסיבית: k x = sqrt( = אחרת אינו מוגדר k half ( = min{ f = 0} נוכיח: פונקצית השורש היא פונקציה רקורסיבית 6 5
ל' ' ל'' פתרון דוגמה הפתרון דוגמה איזו פונקציה של ו- x מתאפסת כאשר הוא שורש של x ולא מתאפסת כלל אם x אינו ריבוע של מספר שלם? f = x :mult()=x* Z( ) mult( ) = g( x, mult( x, ), ) מימוש של הפונקציה x = 0 x > 0 הערה: אם הפונקציה היתה מתאפסת בכמה ערכי היינו שואלים את השאלה הנ לגבי הערך הראשון (הקטן ביותר) בו הפונקציה מתאפסת g( a, b, c) = add( P ( a, b, c), P ( a, b, c)) 8 7 הפתרון דוגמה פונקציות רקורסיביות דוגמה f = מימוש של הפונקציה x נגדיר את הפונקציה: f = abs _ diff ( mult( P, P ), P ) מימוש של הפונקציה sqrt ( x + / - מתחלק ב (x + sum _ div( = אחרת אינו מוגדר sqrt( = min{ f = 0} נוכיח: הפונקציה הנ הינה רקורסיבית 0 9
ל' ' פתרון דוגמה הפתרון דוגמה איזו פונקציה של x, ו- z מתאפסת עבור השווה ל- (x+/ אם (x+ מתחלק ב- ולא מתאפסת כלל אחרת? f = ( x + מימוש הפונקציה f:, P )) מימוש הפונקציה :sum_div f = abs _ diff ( mult( P add( P, C ( P (, )), sum _ div( = min{ f = 0} הוכחת משפט מכונות טיורינג ופונקציות רקורסיביות משפט : כל פונקציה רקורסיבית ניתנת לחישוב ע' 'י מכונת טיורינג משפט : כל פונקציה הניתנת לחישוב ע''י מכונת טיורינג היא פונקציה רקורסיבית ניסוח שלישי לתזה של צ'רץ': כל מודל סבי ר וכללי של חי שוב מ אפ ש ר ח ישוב כל הפונקציות הרקורסיב יות ורק אותן ההוכחה באינדוקציה על מספר הפעלות של כללים (הרכבה, רקורסיה פרימיטיבית, מינימיזציה ( בסיס: נוודא שפונקציות היסוד ניתנות לחישוב ע' 'י מ פונקצית האפס :Z(=0 המכונה תכתוב 0 בתא הראשון, תזוז צעד ימינה ותעצור פונקצית העוקב :S(=x+ ראינו בכיתה מ לחישוב הפונקציה הנ פונקציות ההיטל n) P in (x,,x n )=x i ו- i קבועים עבור מ מתאימה): המכונה על קלט x x# x#...# n תסמן את תחילת הסרט ב-$, תספור בעזרת מצבים את הסימנים # ובהגעה ל- x i תזיז את המילה שמאלה עד ל-$, תלך ימינה לרווח או # ותעצור 4
ל' ' ל' ' הוכחת משפט הוכחת משפט צעד: נניח שהטענה נכונה עבור הפונקציות שהתקבלו ע' 'י n הפעלות כללים לכל היותר נוכיח כי הטענה נכונה עבור הפונקציות אשר מתקבלות ע''י (+n) הפעלות כללים תהי h פונקציה שהתקבלה ע''י (+n) הפעלות כללים נראה מכונת טיורינג M h המחשבת את הפונקציה h נבדיל בין מקרים, בהתאם לכלל האחרון שהופעל לקבלת הפונקציה מקרה : הכלל האחרון שהופעל לקבלת h הוא כלל ההרכבה תהינה f,g g,, n כמו בהגדרה של כלל ההרכבה אבחנה: כל אחת מ- f,g g,, n התקבלה ע''י n הפעלות כללים לכל היותר מסקנה: לפי הנחת האינדוקציה קיימות מכונות טיורינג M g M,, gn המחשבות את הפונקציות הנ נבנה מכונה M h המחשבת את h M f, 6 5 מקרה הוכחת משפט המכונה M h על קלט x #x #...#x m תפעל באופן הבא: עבור כל, i n,i תחשב ) m i = g i (x,,x ע' 'י הפעלת מכונת טיורינג תחשב בעזרת מ h(x,,x m ) = f(,, n ) את M f M gi אם אחת המכונות אינה עוצרת, גם M h לא תעצור מקרה : הכלל האחרון שהופעל הוא כלל הרקורסיה הפרימיטיבית f ו- g תהינה כמו בה גד רת כלל ה רק ורסיה הפ רי מ יטי בית אבחנה: f ו- g התקבלו ע' 'י n הפעלות כללים לכל היותר לפי הנחת האינדוקציה קיימות מכונות טיורינג המחשבות את הפונקציות הנ M f M g ו- נבנה מ M h המ ח שבת א ת h 8 7
מקרה הוכחת משפט המכונה M h על קלט i#x x#...# n תפעל באופן הבא: אם 0=i תחשב את ) n h(0,x,,x n ) = f(x,,x בעזרת מ אם 0<i M f תחשב את ) n w 0 = f(x,,x בעזרת מ M f עבור k=0,,,i- תחשב את ) n w k+ = g(k,w k,x,,x בעזרת מ פלט ה מכונה הינו M g w i מקרה : הכלל האחרון שהופעל הוא כלל המינ ימ יזצי ה תהי f פונקציה כמו בהגדרת כלל המינימיזציה f התקבלה ע' 'י n הפעלות כללים לכל היותר לפי הנחת האינדוקציה קיימת מ נבנה מ h המחשבת את M h f המחשבת את M f 0 9 מקרה זיהוי שפות ע''י מכונות טיורינג המכונה M h על קלט x x#...# n תפעל באופן הבא: תעבור בלולאה ע ל ער כי,0,,, = לכל, תחשב בעזרת מ M f את ) n f(,x,,x אם התקבלה התוצאה, 0 h M תעצור עם פלט שהוא הערך הנוכחי לעיתים נוח יותר לדבר על זיהוי שפות ע''י מכונות טיורינג ולא על חישוב פונקציות הגדרה: מכונת טיורינג לזיהוי שפות היא מכונת טיורינג בעלת שני מצבים סופיים } REJ F = {q ACC,q "אבחנה: לכל מכונת טיורינג קיימת מ מצבים סופיים ש קולה בעלת שנ י
השפה המתקבלת ע''י מכונת טיורינג מ ע''י זיהוי שפות הגדרה: נאמר כי מ (לזיהוי שפות) M מקבלת קלט x אם החישוב של M על קלט x מסתיים במצב הגדרה: נאמר כי מ (לזיהוי שפות) M דוחה את הקלט x אם החישוב של M על x מסתיים במצב אם M לא מקבלת את, x האם זה אומר ש- M דוחה את? x q ACC q REJ הגדרה: השפה המתקבלת ע''י מכונת טיורינג M המסומנת L M היא אוסף כל המילים אשר M מקבלת " אין דרישה כי M תעצור על כל קלט " קלטים עליהם M לא עוצרת וגם הקלטים עליהם M עוצרת במצב q REJ אינם בשפה L M q ACC עוצרת במצב M היא אוסף קלטים עליהם L M " 4 דוגמאות דוגמאות מ ע''י זיהוי שפות דוגמה : השפה * Σ מתקבלת ע''י מ דוגמה : השפה מתקבלת ע''י מ הבאה: σ Γ, δ ( q0, σ ) = ( q,, S) ACC σ הבאה: σ Γ, δ ( q0, σ ) = ( qrej, σ, S) הבאה: דוגמה : השפה n>0} L = {a n b n c n מתקבלת ע''י מ המכונה היא בעלת 4 סרטים המכונה תסמן את תחילת הסרטים, ו- 4 ב-$ המכונה תעבור על הקלט הרשום בסרט הראשון ותעתיק a -ים לסרט השני, b -ים לסרט השלישי ו- c -ים לסרט הרביעי אם תוך הסריקה מסתבר שאחרי b או c מופיע a או אחרי c מופיע b q המכונה תעצור במצב REJ המכונה תחזור לתחילת הסרטים 4,, המכונה תסרוק במקביל סרטים,, ו- 4 ואם מגיעים לרווח בכל שלושת הסרטים באותו זמן, המכונה תעצור במצב q ACC אחרת תעצור במצב q REJ 6 5